home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Inne / Gry / GNU_Backgammon / gnubg-MAIN-20110822-setup.exe / {app} / database.py < prev    next >
Text File  |  2008-02-06  |  3KB  |  112 lines

  1. #
  2. # database.py
  3. #
  4. # by Joern Thyssen <jth@gnubg.org>, 2004
  5. #
  6. # This file contains the functions for adding matches to a relational
  7. # database.
  8. #
  9. # The modules use the DB API V2 python modules. 
  10. #
  11. # This program is free software; you can redistribute it and/or modify
  12. # it under the terms of version 3 or later of the GNU General Public License as
  13. # published by the Free Software Foundation.
  14. #
  15. # This program is distributed in the hope that it will be useful,
  16. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. # GNU General Public License for more details.
  19. #
  20. # You should have received a copy of the GNU General Public License
  21. # along with this program; if not, write to the Free Software
  22. # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  23. #
  24. # $Id: database.py,v 1.25 2008/02/06 22:47:58 Superfly_Jon Exp $
  25. #
  26.  
  27. connection = 0
  28.  
  29. def PyMySQLConnect(database, user, password):
  30.   global connection
  31.   import MySQLdb
  32.   try:
  33.     connection = MySQLdb.connect( db = database, user = user, passwd = password )
  34.     return 1
  35.   except:
  36.     # See if mysql is there
  37.     try:
  38.       connection = MySQLdb.connect()
  39.       # See if database present
  40.       cursor = connection.cursor()
  41.       r = cursor.execute('show databases where `Database` = "' + database + '";')
  42.       if (r != 0):
  43.         return -2 # failed
  44.       cursor.execute('create database ' + database)
  45.       connection = MySQLdb.connect( db = database )
  46.       return 0
  47.     except:
  48.       return -1 # failed
  49.     
  50.   return connection
  51.  
  52. def PyPostgreConnect(database, user, password):
  53.   global connection
  54.   import pgdb
  55.   try:
  56.     connection = pgdb.connect(database=database,user=user,password=password)
  57.     return 1
  58.   except:
  59.     # See if postgres is there
  60.     try:
  61.       connection = pgdb.connect(user=user,password=password)
  62.       # See if database present
  63.       cursor = connection.cursor()
  64.       cursor.execute('select datname from pg_database where datname=\'' + database + '\'')
  65.       r = cursor.fetchone();
  66.       if (r != None):
  67.         return -2 # failed
  68.       cursor.execute('end')
  69.       cursor.execute('create database ' + database)
  70.       connection = pgdb.connect(database=database,user="postgres",password="root")
  71.       return 0
  72.     except:
  73.       return -1 # failed
  74.     
  75.   return connection
  76.  
  77. def PySQLiteConnect(dbfile):
  78.   global connection
  79.   from sqlite3 import dbapi2 as sqlite
  80.   connection = sqlite.connect(dbfile)
  81.   return connection
  82.  
  83. def PyDisconnect():
  84.   global connection
  85.   connection.close()
  86.  
  87. def PySelect(str):
  88.   global connection
  89.   cursor = connection.cursor()
  90.   cursor.execute("SELECT " + str)
  91.   all = list(cursor.fetchall())
  92.   if (len(all) > 0):
  93.     titles = [cursor.description[i][0] for i in range(len(cursor.description))]
  94.     all.insert(0, titles)
  95.  
  96.   return all
  97.  
  98. def PyUpdateCommand(stmt):
  99.   global connection
  100.   cursor = connection.cursor()
  101.   cursor.execute(stmt)
  102.  
  103. def PyUpdateCommandReturn(stmt):
  104.   global connection
  105.   cursor = connection.cursor()
  106.   cursor.execute(stmt)
  107.   return list(cursor.fetchall())
  108.  
  109. def PyCommit():
  110.   global connection
  111.   connection.commit()
  112.